package chapter03_binaryTree;

/**
 * 描述：
 *      通过有序数组生成平衡二叉搜索树
 * @author hl
 * @date 2021/5/30 11:51
 */
public class GenerateTree {

    public Node generateTree(int[] arr){
        if (arr == null || arr.length == 0) {
            return null;
        }
        return generate(arr, 0, arr.length - 1);
    }

    private Node generate(int[] arr, int l, int r) {
        if (l > r) {
            return null;
        }
        int mid = (l + (r - l) >> 1);
        Node node = new Node(arr[mid]);
        node.left = generate(arr, l, mid - 1);
        node.right = generate(arr, mid + 1, r);
        return node;
    }

}
